package br.com.andersonoliveirasilva.sistema.cliente;

import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.Session;

public class ClienteDAOHibernate implements ClienteDAO {

	private Session sessao;
	
	public Session getSessao() {
		return sessao;
	}

	public void setSessao(Session sessao) {
		this.sessao = sessao;
	}

	@Override
	public void salvar(Cliente cliente) {
		this.sessao.save(cliente);
	}

	@Override
	public void excluir(Cliente cliente) {
		this.sessao.delete(cliente);
		
	}

	@SuppressWarnings("unchecked")
	@Override
	public List<Cliente> listar() {
		Criteria lista = sessao.createCriteria(Cliente.class);
		return lista.list();
	}

	@Override
	public Cliente pesquisar(String string) {
		String sql = "from Cliente where nome like :parametro";
		Query consultaNome = sessao.createQuery(sql)
				.setString("parametro", "%"+string+"%");
		Cliente cliente = (Cliente)consultaNome.uniqueResult();
		return cliente;
	}

	@Override
	public void alterar(Cliente cliente) {
		this.sessao.update(cliente);
		
	}

}
